When creating an object of any type, you can use its
constructor, or make-instance. This, in turns calls
the method initialize-instance, which then calls the
method shared-initialize.
These methods are all implemented on the default superclass so you do not need to write them yourself, unless you need to override one of their behaviors.
Users should not need to call initialize-instance
or shared-initialize, as these are used by
make-instance to initialize the object. They are
instead provided so that users can augment these behaviors.